from rich import print
import pandas as pd
import pandas_datareader.data as web
import yfinance as yf
import warnings
import matplotlib.pyplot as plt
import numpy as np
import plotly.graph_objects as go
from datetime import datetime
import mplfinance as mpf
warnings.filterwarnings("ignore")
def extract_data_qt(quote, period="max"):
""" Metodo para carregamento das bases
de dados na apy yfinance do Yahoo.
Args:
quote: Nome do código da ação a ser consultada
ex.: 'RAIL3.SA', 'GGBR4.SA'
period: Periodo a ser consultado
ex.: "max", "5y", "1m", "30d"
Returns:
database: Base de dados com histórico das ações
de acordo com o periodo"""
yf.pdr_override()
df = web.get_data_yahoo(quote, period=period, rounding=True)
return df
marfrig = extract_data_qt('MRFG3.SA')
gerdau = extract_data_qt('GGBR4.SA')
rumo = extract_data_qt('RAIL3.SA')
#Verificando os dados carregados
marfrig.head()
#Avaliando os dados
marfrig.info()
#numero de amostras (linhas e colunas)
def amostras(df):
"""Mostra os valores de amostras e colunas do arquivo
Argumentos:
df: Lista/base de dados.
Retorna:
Um print informando os valores de amostras e colunas do arquivo."""
print("O arquivo possui [green]{0}[/green] amostras e [green]{1}[/green] colunas".format(
df.shape[0], df.shape[1] ))
amostras(marfrig)
#Colunas com valores faltantes
print("Colunas com valores Faltantes: \n {0} \n".format(
marfrig.columns[marfrig.isnull().any()].values))
marfrig['Date'] = marfrig.index
#linhas duplicadas
print(" Duplicadas: [green]{0} ".format(
marfrig.duplicated().sum()))
#Verificando a quantidade de valores unicos em cada coluna
marfrig.nunique()
marfrig["Close"].plot(figsize=(22,8))
As ações da Marfrig se manteve em queda no periodo entre 2008 e 2010 e entre 2012 até 2019 se manteve também em baixa.
marfrig["Close"].plot(figsize=(22,8), label="Marfrig")
marfrig["Close"].rolling(21).mean().plot(label="MM21")
marfrig["Close"].rolling(200).mean().plot(label="MM200")
plt.legend()
df = marfrig[marfrig.index.year == 2020]
fig = go.Figure(data=[go.Candlestick(x=df.index,
open=df['Open'],
high=df['High'],
low=df['Low'],
close=df['Close'])])
fig.update_layout(title= "Marfrig 2020")
df = marfrig[marfrig.index.year == 2020]
mpf.plot(df,volume=True,tight_layout=True, style='yahoo')
mpf.plot(df,fill_between=dict(y1=df['Low'].values,y2=df['High'].values))
As ações da Marfrig cairam bastante em Março/2020 (PossÃvel causa Pandemia do Coronavirus) atualmente está seguindo uma tendência de alta!
#Verificando os dados carregados
gerdau.head()
#Avaliando os dados
gerdau.info()
amostras(gerdau)
gerdau['Date'] = gerdau.index
#Colunas com valores faltantes
print("Colunas com valores Faltantes: \n {0} \n".format(
gerdau.columns[gerdau.isnull().any()].values))
#linhas duplicadas
print(" Duplicadas: [green]{0} ".format(
gerdau.duplicated().sum()))
#Verificando a quantidade de valores unicos em cada coluna
gerdau.nunique()
gerdau["Close"].plot(figsize=(22,8))
As ações da Gerdau teve sua principal alta entre 2008-2009 e no ano de 2016 estava em queda.
gerdau["Close"].plot(figsize=(22,8), label="Gerdau")
gerdau["Close"].rolling(21).mean().plot(label="MM21")
gerdau["Close"].rolling(200).mean().plot(label="MM200")
plt.legend()
df = gerdau[gerdau.index.year == 2020]
fig = go.Figure(data=[go.Candlestick(x=df.index,
open=df['Open'],
high=df['High'],
low=df['Low'],
close=df['Close'])])
fig.update_layout(title= "Gerdau 2020")
df = gerdau[gerdau.index.year == 2020]
mpf.plot(df,volume=True,tight_layout=True, style='yahoo')
mpf.plot(df,fill_between=dict(y1=df['Low'].values,y2=df['High'].values))
As ações da Gerdau cairam bastante em Março/2020 (PossÃvel causa Pandemia do Coronavirus) atualmente está seguindo uma tendência de alta!
#Verificando os dados carregados
rumo.head()
#Avaliando os dados
rumo.info()
amostras(rumo)
rumo['Date'] = rumo.index
#Colunas com valores faltantes
print("Colunas com valores Faltantes: \n {0} \n".format(
rumo.columns[rumo.isnull().any()].values))
#linhas duplicadas
print(" Duplicadas: [green]{0} ".format(
rumo.duplicated().sum()))
#Verificando a quantidade de valores unicos em cada coluna
rumo.nunique()
rumo["Close"].plot(figsize=(22,8))
As ações da Rumo vem crescendo desde de 2016, se mantendo em um ritmo constante e tendo uma queda brusca em 2020.
rumo["Close"].plot(figsize=(22,8), label="Rumo")
rumo["Close"].rolling(21).mean().plot(label="MM21")
rumo["Close"].rolling(200).mean().plot(label="MM200")
plt.legend()
df = rumo[rumo.index.year == 2020]
fig = go.Figure(data=[go.Candlestick(x=df.index,
open=df['Open'],
high=df['High'],
low=df['Low'],
close=df['Close'])])
fig.update_layout(title= "Rumo 2020")
df = rumo[rumo.index.year == 2020]
mpf.plot(df,volume=True,tight_layout=True, style='yahoo')
mpf.plot(df,fill_between=dict(y1=df['Low'].values,y2=df['High'].values))
As ações da Gerdau cairam bastante em Março/2020 (PossÃvel causa Pandemia do Coronavirus) atualmente está seguindo uma tendência de valor constante!
df = rumo[rumo.index.year == 2020]
df["Close"].plot(figsize=(22,8), label="Rumo")
df = gerdau[gerdau.index.year == 2020]
df["Close"].plot(label="Gerdau")
df = marfrig[marfrig.index.year == 2020]
df["Close"].plot(label="Marfrig")
plt.legend()